package com.sram.util;

import java.util.ArrayList;
import java.util.List;
import java.util.UUID;

/**
 * 类名：UploadUtils 功能：给一个 上传文件的名字，获取hashCode，并&0xf; 得到一级目录二级目录以及三级目录。 详细：返回路径，
 * 版本：1.0 日期：2013-11-25 说明：
 * 
 * @author JavaPlus
 * 
 */
public class DirectoryUtil {

	public static String geneRadomDir(String uuidName) {

		String anName = uuidName(uuidName);
		int hashCode = anName.hashCode();
		int dir1 = hashCode & 0xf;
		int dir2 = (hashCode >>>= 4) & 0xf;
		int dir3 = (hashCode >>>= 4) & 0xf;
		int dir4 = (hashCode >>>= 4) & 0xf;

		return "/" + dir1 + "/" + dir2 + "/" + dir3 + "/" + dir4;
	}

	/**
	 * 富文本编辑器上传路径
	 * 
	 * @param uuidName
	 * @return
	 */
	public static String geneXRadomDir(String uuidName) {

		int hashCode = uuidName.hashCode();
		int dir1 = hashCode & 0xf;
		int dir2 = (hashCode >>>= 4) & 0xf;
		int dir3 = (hashCode >>>= 4) & 0xf;
		int dir4 = (hashCode >>>= 4) & 0xf;

		return "/" + dir1 + "/" + dir2 + "/" + dir3 + "/" + dir4;
	}

	/**
	 * 修改32位 uuid
	 * @param uuidName
	 * @return
	 */
	public static String uuidName(String uuidName) {
		String suffix = uuidName.substring(uuidName.lastIndexOf("."));
		String anName = MD5Utils.getUUID()+ suffix;
		return anName;
	}

	/**
	 * 多文件上传
	 * 
	 * @param uploadFileName
	 *            上传文件名
	 * @return List集合 路径
	 * @author JavaPlus
	 */
	public static List<String> geneRadomDir(List<String> uploadFileName) {

		List<String> singleList = new ArrayList<String>();
		for (String subFileName : uploadFileName) {
			String anName = uuidName(subFileName);
			int hashCode = anName.hashCode();
			int dir1 = hashCode & 0xf;
			int dir2 = (hashCode >>>= 4) & 0xf;
			int dir3 = (hashCode >>>= 4) & 0xf;
			int dir4 = (hashCode >>>= 4) & 0xf;

			singleList.add("/" + dir1 + "/" + dir2 + "/" + dir3 + "/" + dir4);
		}
		return singleList;
	}
	
	/**
	 * 文件上传主路径
	 * @author Chan
	 * @return
	 */
	public static String getMainDirectory() {
		String dir = "E:/upload";
		return dir;
	}

	/**
	 * 测试
	 * 
	 * @param args
	 */
	public static void main(String[] args) {

		String s = DirectoryUtil.geneRadomDir("admin123");
		System.out.println(s);
	}
}
